# A10. 远程使用Matlab on linux

# 一、文本方式

远程登陆后:(创新港服务器主机:10.181.172.218

matlab -nodesktop -nosplash

这种方式就没有办法直接看到图形化的数据结果,可以保存为图片方式。

# 二、saveas命令格式

Matlab提供直接的saveas函数可以将指定figure中的图像或者simulink中的框图进行保存,相当于【文件】中的【另存为】

% saveas(figure_handle,filename,fileformat)
plot(1:10);
saveas(gcf,‘myfig.jpg’)
1
2
3

# 三、使用print函数

print函数原本不是用来进行图像保存了,而是操作打印机的,可以用来保存图片

% print(figure_handle,fileformat,filename)
x=-pi:2*pi/300:pi;
y=sin(x);
plot(x,y);
%Matlab根据文件扩展名,自动保存为相应格式图片,另外路径可以是绝对也可以是相对
print(gcf,'-dpng','abc.png')  %保存为png格式的图片到当前路径
1
2
3
4
5
6

# 四、在命令行运行Matlab程序

例如有如下.m文件:

%tplot.m
x = [-10 : 0.01: 10];
y = 3*x.^4 + 2 * x.^3 + 7 * x.^2 + 2 * x + 9;
g = 5 * x.^3 + 9 * x + 2;
plot(x, y, 'r', x, g, 'g');
saveas(gcf,'01.jpg')

print(gcf,'-dpng','02.png')

exit  %退出Matlab运行环境!
1
2
3
4
5
6
7
8
9
10

在服务器命令行下:

$ cai@xcai:~/文档/matlabt$ matlab -nodesktop -nosplash -r tplot
1

程序运行后将生成01.jpg和02.png两个图片。注意.m文件最后"exit"非常重要,不然需要人工输入命令"quit"或"exit"才能退出Matlab环境。对于需要长时间运行的程序,可以后台运行,从而最大化计算资源。

# 五、其他启动选项

在 LNIX 下:

  1. -nodesktop 启动jvm(Java Virtual Machine),不启动desktop,但help 界面,preferences界面等仍可通过cmdline 调出,即jvm启动但不启动desktop,可以启动其他显示;但是matlab不会在cmd history记录本次执行的命令
  2. -nodisplay 启动jvm,不启动desktop,不启动任何显示相关,忽略任何DISPLAY 环境变量;即jvm启动但不能显示
  3. -nojvm 不启动jvm,则与之相关的一切活动将无法进行,包括图形界面显示,help 界面,preferences界面等 即jvm不启动故不能显示
  4. -nosplash 只是不显示启动时的log画面,jvm,desktop等正常启动

如果使用 -nodisplay -r 选项运行,当程序中有figure()命令时会出错,可以使用如下选项抑制图形的显示:

figure(‘visible’,’off’);
1

并使用如下命令将图形输出到文件:

print(-deps’,’example.eps’);
1

或者

hgsave('example.fig');
1